iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 1
1
自我挑戰組

寫遊戲初體驗系列 第 1

從零開始寫遊戲 SFML 介紹

  • 分享至 

  • xImage
  •  

title: 鐵人賽D1

寫遊戲初體驗

前言

上大學第一個學的語言是C,下個就是C++了,C++也是我目前最熟悉?的語言,但當初還在新手村的時候,學了這個語言,就只是一直看著cmd這個黑框框,感覺挺無聊的。

當然現在知道C++能做的事很多很多,各個領域都有應用,在遊戲方面也有。
所以我想要透過SFML(Simple and Fast Multimedia Library)來介紹 C++ 在遊戲方面的一些應用,並且透過他來製作一個小遊戲。

SFML 介紹

Simple and Fase Media Library (SFML) 是一個由 C++ 寫成的跨平台(cross-platfrom)的用於遊戲、多媒體應用開發的 Library,有多個語言的綁定 (Binding) ,分成幾大模塊:系統、視窗、圖形、音訊跟網路。


https://github.com/SFML/SFML

  • SFML 分成幾大模塊
    • System 一些基礎建設,例如:向量(vector)、字串、thread、timer
    • Window 管理視窗以及輸入(鍵盤、滑鼠、搖桿等)及 OpenGL
    • Graphics 硬體加速的 2D 圖形:sprite, text, shapes
    • Audio 音訊、錄音、3D音效
    • Network TDP 與 UDP socket 與 HTTP 跟 FTP

安裝

官方有提供很多平台的安裝過程,所以有興趣的就挑自己喜歡的平台安裝。

個人使用Cmake。

簡單小例子

#include <SFML/Audio.hpp>
#include <SFML/Graphics.hpp>

int main()
{
    sf::RenderWindow window(sf::VideoMode(800, 600), "SFML window");

    sf::Texture texture;
    if (!texture.loadFromFile("gardevoir.png"))
        return EXIT_FAILURE;
    sf::Sprite sprite(texture);


    while (window.isOpen())
    {
        sf::Event event;
        while (window.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
                window.close();
        }

        window.clear();

        window.draw(sprite);

        window.display();
    }
    return EXIT_SUCCESS;
}
  • 這樣我們就脫離cmd那個黑框框了!!


下一篇
SFML Window
系列文
寫遊戲初體驗30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言